﻿
using HBase;
using System;

namespace Persistence {
    public class CoreStockDet : ChildrenEntity, ICloneable {
        public long itemId {
            get; set;
        }
        /// <summary>
        /// 库外0，入库中1，库存2，出库中3,移库中4,出库完成-1
        /// </summary>
        public int status {
            get; set;
        }
        public double countDb {
            //数量
            get; set;
        }
        public int unit {
            //单位
            get; set;
        }

        public DateTime createTime {
            get; set;
        }
        public DateTime? outTime {
            get; set;
        }
        public long doiDetId { get; set; }
        public int doiType { get; set; }
        public long dooDetId { get; set; }
        public int dooType { get; set; }
 
        public string barCode {
            get; set;
        } 
        public string batchNo { get; set; } 
      
        //在托盘的第几个位置
        public int bPos {
            get; set;
        }

        [WriteAttribute(false)]
        public String boxCode { get; set; }
        [WriteAttribute(false)]
        public int locId { get; set; }
        
    }
    public class DetConst {
        public const int DoiTypePy = 11;//盘库
        public const int DoiTypeNO = 12;//直接入库 无单据入库
        public const int DoiTypeDj =13;//入库单据类型


        public const int DooTypePk = 21;//盘库
        public const int DooTypeNO = 22;//直接出库 无单据出库
        public const int DooTypeDj = 23;//出库单据类型
    }
    public enum StockDetailStatus {
        编辑 = 1,//未绑定任何数据的状态预留的缓存状态
        下线 = 2,
        待绑定 = 3,//刚刚创建未绑定托盘   
        库存 = 29,//可以出库
        出库待确认 = 35,//出库待确认 
        盘亏中 = 47,
        盘盈 = 48, //新增数量
       
        上限 = 70,//无需人工确定，在自动对接系统中
        单据自动出库 = 71,//无需人工确定，在自动对接系统中
        单据盘亏出库 = 72,//盘库中
        单据手动出库 = 73,//出库中
        直接库外出库 = 74,//待入库 
        直接库存出库 = 75,//库存
        直接编辑出库 = 76,//编辑
    }
}


//@单据手动出库<---          编辑 --------------->*直接编辑出库
//                |            |
//                |            V   
// @单据自动出库<--    ------待上架 --------------->*直接库外出库
//               /|\   V        |             
//                |-----        V                                                    
//         出库待确认  V    首次上架中 
//               /|\   |        |    
//                |    V        V                                                     
// *库存直接出<-----库存<----------盘盈++                             
//                    |            /|\                                        
//                    V             |                                        
//                  盘存------------|------>盘亏中---->@单据盘亏出库                                    
//                   
//                   
//                                                                
//                                                     
//                 